home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / internet / webx / jpged26s.lzh / JPEG.S < prev    next >
Text File  |  1996-11-13  |  13KB  |  719 lines

  1. *
  2. *
  3. *       JPEG.S
  4. *
  5. *
  6. include   DOSCALL.MAC
  7. include   JPEG.MAC
  8. include   work.inc
  9. *
  10.     .xref   Save
  11.     .xref   Load,DQT,running_size
  12.     .xref   work_adrs
  13.     .xref    Illegal_size_error
  14.     .xref    Memory_error
  15.     .xref    Switch_Error
  16. *    .xref    no_sup_24_error
  17. *
  18.   .text
  19.   .cpu 68000
  20. *
  21. start
  22. *âüâéâèèmò█
  23. *--------------------------------------------
  24.     *╠▀█╕▐╫╤+╜└»╕ò¬é╠╥╙╪é≡Äcé╡é─îπé═ë≡ò·
  25.     *-------------------------------
  26.         lea.l    start(pc),a1
  27.         sub.l    a0,a1
  28.         move.l    a1,d1
  29.         add.l    #4096+running_size-start-16,d1
  30.  
  31.         move.l    8(a0),d0
  32.         sub.l    a0,d0
  33.         cmp.l    d0,d1
  34.         bhi    Memory_error        ╥╙╪é¬æ½éΦé╚éó
  35.  
  36.         lea.l    (a0,d1.l),sp
  37.  
  38.         move.l    d1,-(sp)
  39.         pea.l    16(a0)
  40.         DOS    _SETBLOCK
  41.         addq.l    #8,sp
  42.         tst.l    d0
  43.         bmi    Memory_error        ╥╙╪é¬æ½éΦé╚éó
  44.  
  45.     *ĵô╛ÅoùêéΘé╛é»╥╙╪é≡ĵô╛
  46.     *---------------------------------
  47.         *ÄcéΦ╥╙╪╗▓╜▐é≡ĵô╛
  48.         *-------------------------
  49.         move.l    #-1,-(sp)
  50.         DOS    _MALLOC
  51.         addq.l    #4,sp
  52.         rol.l    #8,d0
  53.         cmp.b    #$81,d0
  54.         bne    Memory_error        ╥╙╪é¬æ½éΦé╚éóé±é┼é╡éσéñ
  55.  
  56.         *ĵô╛ÅoùêéΘì┼æσé╠╥╙╪╗▓╜▐é┼ĵô╛
  57.         *-------------------------
  58.         lsr.l    #8,d0
  59.         move.l    d0,d1
  60.         move.l    d0,-(sp)
  61.         DOS    _MALLOC
  62.         addq.l    #4,sp
  63.         tst.l    d0
  64.         bmi    Memory_error        éáéΩüH
  65.  
  66.         move.l    d0,a6
  67.         lea.l    work_adrs(pc),a5
  68.         move.l    d0,(a5)+        work start address set
  69.         add.l    #COS_TBL+2048*2*6+COS1,d0
  70.         move.l    d0,(a5)+        COS_TBL▒─▐┌╜
  71.         lea.l    em_free_adrs(a6),a5    common work address
  72.  
  73.         move.l    a5,free_adrs(a6)
  74.         move.l    d1,free_size(a6)
  75.  
  76. *âÅü[âNÅëè·ë╗
  77. *----------------------------------
  78.         movea.l    a6,a5
  79.         move.l    #clr_end,d5
  80.         bsr    clear_area
  81.  
  82.         move.b  #3,uvmode(a6)
  83.         move.l    #$00010001,Interval(a6)
  84.         move.l    #$00010001,Interval+4(a6)
  85.         move.w    #1,Qlevel(a6)
  86.         lea.l    DQT+4(pc),a5
  87.         move.l    a5,DQTadr(a6)
  88.         move.l    #$c00000,VSadr(a6)
  89.         move.w    #512,VSXsize(a6)
  90.         move.w    #512,VSYsize(a6)
  91.         move.w    #16,VScbit(a6)
  92.  
  93.         move.w    #-1,imsg_handle(a6)
  94. *
  95.         moveq.l    #1,d0
  96. .cpu 68030
  97.         move.b    (mpu_table-1,pc,d0.w*2),d0    MPUö╗ÆΦ
  98. .cpu 68000
  99.         move.b    d0,Sys_flag2(a6)
  100.         bra    @f
  101. mpu_table:    .dc.b    $04,$05
  102. @@
  103.         bset.b    #5,Sys_flag3(a6)
  104.  
  105. *âRâ}âôâhâëâCâôë≡É═
  106. *------------------------------------
  107.         addq.l    #1,a2
  108.         bsr    Check_Parameter
  109.         tst.b    fname(a6)
  110.         beq    Switch_Error
  111.  
  112.         *ê╩ÆuÄwÆΦé┼üAëEë║é╠ì└òWÄwÆΦé¬û│éóÅΩìçé═üAëEë║é╠ì└òWé≡Åëè·ë╗
  113.         *------------------------------------
  114.  
  115.         btst.b    #6,Sys_flag2(a6)
  116.         bne    main_pos_end
  117.  
  118.         move.w    VSXsize(a6),d0
  119.         move.w    VSYsize(a6),d1
  120.         subq.w    #1,d0
  121.         subq.w    #1,d1
  122.         move.w    d0,HE(a6)
  123.         move.w    d1,VE(a6)
  124.  
  125. main_pos_end
  126.  
  127.         *ö═ê═â`âFâbâN(0,0)-(VSXsize,VSYsize)
  128.         *---------------------------
  129.         move.w    HE(a6),d1
  130.         cmp.w    VSXsize(a6),d1
  131.         bcc    Illegal_size_error
  132.         cmp.w    HS(a6),d1
  133.         bcs    Illegal_size_error
  134.         move.w    VE(a6),d1
  135.         cmp.w    VSYsize(a6),d1
  136.         bcc    Illegal_size_error
  137.         cmp.w    VS(a6),d1
  138.         bcs    Illegal_size_error
  139.  
  140. *èeÅêù¥é╓ò¬è≥
  141. *--------------------------------------
  142.         cmp.b    #1,Action(a6)
  143.         beq    Save
  144.         *cmp.w    #24,VScbit(a6)
  145.         *beq    no_sup_24_error
  146.         bra    Load
  147.  
  148. *  âRâ}âôâhâëâCâôüEâpâëâüü[â^â`âFâbâN
  149. *-------------------------------------
  150. Check_Parameter
  151. CheckParam10
  152.         move.b    (a2)+,d0
  153.         beq    CheckParam99
  154.         cmpi.b    #' ',d0
  155.         bls    CheckParam10
  156.         cmpi.b    #'-',d0
  157.         beq    CheckParam20
  158.  
  159.         btst.b    #4,Sys_flag3(a6)
  160.         bne    @f        '/'é═╡╠▀╝«▌é╞é╡é─Ägùpé┼é½é╚éó
  161.  
  162.         cmpi.b    #'/',d0
  163.         beq    CheckParam20
  164. @@
  165.     *╠º▓┘û╝ĵô╛
  166.     *-------------------------------
  167.         subq.l    #1,a2
  168.         lea    fname(a6),a0
  169.         bsr    CutFname
  170.         bra    CheckParam10
  171.  
  172.     *   Option Check
  173.     *----------------------------------
  174. CheckParam20
  175.         moveq.l    #0,d0
  176.         move.b    (a2)+,d0
  177.         cmp.b    #'A',d0
  178.         bcs    @f
  179.         cmp.b    #'Z',d0
  180.         bhi    @f
  181.         or.b    #$20,d0
  182. @@
  183.         lea.l    Option_tbl(pc),a1
  184. @@
  185.         move.w    (a1)+,d1
  186.         beq    Switch_Error
  187.         cmp.w    d0,d1
  188.         beq    @f        êΩÆv
  189.         addq.l    #2,a1
  190.         bra    @b
  191. @@
  192.         move.w    (a1)+,d0
  193.         jsr    CheckParam20(pc,d0.w)
  194.         bra    CheckParam10
  195.  
  196. CheckParam99
  197.         rts
  198.  
  199.  
  200.         *âZü[âu
  201.         *------------------------
  202. Option_S    tst.b    Action(a6)
  203.         bne    Switch_Error
  204.         move.b    #1,Action(a6)
  205.         bsr    RangeRead
  206.         rts
  207. *
  208.         *âìü[âh
  209.         *------------------------
  210. Option_L
  211.         tst.b    Action(a6)
  212.         bne    Switch_Error
  213.         clr.b    Action(a6)
  214.         bsr    RangeRead
  215.         rts
  216. *
  217.         *ëµæ£Åπé╠ò\Īê╩Æu
  218.         *------------------------
  219. Option_B
  220.         bclr.b    #2,Sys_flag2(a6)    ò\ĪèJÄnê╩ÆuÄwÆΦùLéΦé╚é╠é┼╜╕█░┘é╚é╡
  221.         bsr    NUMCUT
  222.         bcs    Switch_Error
  223.         cmp.b    #',',(a2)+
  224.         bne    Switch_Error
  225.         move.w    d1,XS(a6)
  226.         bsr    NUMCUT
  227.         bcs    Switch_Error
  228.         move.w    d1,YS(a6)
  229.         rts
  230.  
  231.         *ëµæ£ò\Īö{ùª
  232.         *-------------------------
  233. Option_I
  234.         bclr.b    #2,Sys_flag2(a6)    ö{ùªÄwÆΦùLéΦé╚é╠é┼╜╕█░┘é╚é╡
  235.         bsr    NUMCUT
  236.         bcs    Switch_Error
  237.         move.w    d1,Interval+2(a6)
  238.         move.w    d1,Interval+6(a6)
  239.         move.b    (a2)+,d0
  240.         cmp.b    #'/',d0
  241.         bne    CheckParam36
  242.         bsr    NUMCUT
  243.         bcs    Switch_Error
  244.         move.w    Interval+2(a6),d2
  245.         move.w    d1,Interval+2(a6)
  246.         move.w    d1,Interval+6(a6)
  247.         move.w    d2,Interval(a6)
  248.         move.w    d2,Interval+4(a6)
  249.         move.b    (a2)+,d0
  250. CheckParam36
  251.         cmp.b    #',',d0
  252.         bne    Option_I_dec
  253.         bsr    NUMCUT
  254.         bcs    Switch_Error
  255.         move.w    d1,Interval+6(a6)
  256.         cmp.b    #'/',(a2)+
  257.         bne    Option_I_dec
  258.         bsr    NUMCUT
  259.         bcs    Switch_Error
  260.         move.w    Interval+6(a6),d2
  261.         move.w    d1,Interval+6(a6)
  262.         move.w    d2,Interval+4(a6)
  263.         rts
  264. Option_I_dec
  265.         subq.l    #1,a2
  266.         rts
  267. *
  268.         *ù╩Äqë╗âîâxâïé╠É▌ÆΦ
  269.         *-----------------------
  270. Option_Q
  271.         bsr    NUMCUT
  272.         bcs    Option_Qtable
  273.         move.w    d1,Qlevel(a6)
  274.         rts
  275. Option_Qtable
  276.         ****** ù╩Äqë╗âeü[âuâïé╠É▌ÆΦ
  277.         lea    Qname(a6),a0
  278.         bsr    CutFname
  279.         tst.b    d1
  280.         beq    Switch_Error
  281.         rts
  282.  
  283.         *âéü[âhÉ▌ÆΦ
  284.         *---------------------------
  285. Option_M
  286.         move.b    #1,colormode(a6)    *╙╔╕█ëµæ£é┼éáéΘ
  287.         move.b  #1,uvmode(a6)
  288.  
  289.         bsr    NUMCUT
  290.         bcs    Switch_Error
  291.         tst.w    d1
  292.         beq    Option_M_end        *╙╔╕█ëµæ£é╞é╡é─ê╡éñ
  293.  
  294.         cmp.b    #3,d1
  295.         bhi    Switch_Error
  296.         clr.b    colormode(a6)        *╢╫░ëµæ£é┼éáéΘ
  297.         move.b    d1,uvmode(a6)
  298. Option_M_end
  299.         rts
  300.  
  301.         *âwâbâ_ü[Åεò±
  302.         *----------------------------
  303. Option_H
  304.         move.b    #2,Action(a6)
  305.         rts
  306.  
  307.         *ëµû╩Å┴ïÄé╡é╚éó
  308.         *-----------------------------
  309. Option_N
  310.         bset.b    #1,Sys_flag2(a6)
  311.         rts
  312.  
  313.         *âRâüâôâg
  314.         *-----------------------------
  315. Option_C
  316.         move.b   (a2)+,d0
  317.         beq      Switch_Error
  318.         move.b   d0,Cflag(a6)
  319.         lea      Comment(a6),a0
  320.         cmpi.b   #'"',d0
  321.         beq      CheckParam72
  322.         subq.l   #1,a2
  323.         bsr      CutFname
  324.         tst.b    d1
  325.         beq      Switch_Error
  326.         rts
  327. CheckParam72
  328.             move.b   (a2)+,d0
  329.             beq      Switch_Error
  330.             bsr      SJIS
  331.             bcs      CheckParam73
  332.             move.b   d0,(a0)+
  333.             move.b   (a2)+,d0
  334.             beq      Switch_Error
  335.             bra      CheckParam74
  336. CheckParam73
  337.             cmpi.b   #'"',d0
  338.             beq      CheckParam76
  339.             cmpi.b   #'\',d0
  340.             bne      CheckParam74
  341.             move.b   (a2)+,d0
  342.             beq      Switch_Error
  343. CheckParam74
  344.         move.b   d0,(a0)+
  345.         bra      CheckParam72
  346. CheckParam76
  347.         clr.b    (a0)
  348.         rts
  349.  
  350.  
  351.         *âAâXâyâNâg
  352.         *---------------------
  353. Option_A
  354.         move.l   #$00010001,Aspect(a6)
  355.         bsr      NUMCUT
  356.         bcs      Option_A_end
  357.         cmp.b    #',',(a2)+
  358.         bne      Switch_Error
  359.         move.w   d1,Aspect(a6)
  360.         bsr      NUMCUT
  361.         bcs      Switch_Error
  362.         move.w   d1,Aspect+2(a6)
  363. Option_A_end
  364.         rts
  365.  
  366.         *æSëµû╩ê°é½ëäé╬é╡
  367.         *----------------------
  368. Option_F
  369.         clr.b    DispMod(a6)
  370.         bsr    NUMCUT
  371.         bcs    Option_F_end
  372.         cmp.w    #3,d1
  373.         bhi    Switch_Error
  374.         move.b    d1,DispMod(a6)
  375.         beq    Option_F_end
  376.         bclr.b    #2,Sys_flag2(a6)
  377. Option_F_end
  378.         rts
  379.  
  380.         *âLü[ôⁿù═æ╥é┐
  381.         *-----------------------
  382. Option_K
  383.         bsr    NUMCUT
  384.         bcc    @f
  385.         moveq.l    #3,d1
  386. @@
  387.         cmp.w    #7,d1
  388.         bhi    Switch_Error
  389.         btst.l    #0,d1
  390.         beq    @f
  391.         bset.b    #0,Sys_flag(a6)
  392. @@
  393.         btst.l    #1,d1
  394.         beq    @f
  395.         bset.b    #7,Sys_flag2(a6)
  396. @@
  397.         btst.l    #2,d1
  398.         beq    @f
  399.         bset.b    #3,Sys_flag3(a6)
  400. @@
  401.         rts
  402.  
  403.         *âeâôâ|âëâèé╔ôWèJé╖éΘé╠é≡ïûë┬
  404.         *------------------------------
  405. Option_W
  406.         bset.b    #1,Sys_flag(a6)
  407.         lea    temp_path(a6),a0
  408.         bsr    CutFname
  409.         rts
  410.  
  411.         *ë╝æzëµû╩ÄwÆΦ
  412.         *-------------------------------
  413. Option_V
  414.         move.b    (a2)+,d0
  415.         ori.b    #$20,d0
  416.         moveq.l    #16,d1
  417.         cmpi.b    #'s',d0
  418.         beq    CheckParamVS02
  419. *        moveq.l    #24,d1
  420. *        cmpi.b    #'f',d0
  421.         bne    Switch_Error
  422. CheckParamVS02
  423.         move.w    d1,VScbit(a6)
  424.  
  425.         *ë╝æzëµû╩ÄwÆΦéáéΦ
  426.         *-------------------------
  427.         bclr.b    #2,Sys_flag2(a6)
  428.         bset.b    #4,Sys_flag2(a6)
  429.         bsr    NUMCUT
  430.         bcs    Switch_Error
  431.         cmp.b    #',',(a2)+
  432.         bne    Switch_Error
  433.         move.w  d1,VSXsize(a6)
  434.         bsr    NUMCUT
  435.         bcs    Switch_Error
  436.         move.w    d1,VSYsize(a6)
  437.         cmp.b    #',',(a2)+
  438.         bne    Switch_Error
  439.  
  440.         cmp.b    #'$',(a2)
  441.         bne    CheckParamVS05
  442.  
  443.             *╥╙╪Åπé╠ë╝æzëµû╩ÄwÆΦéáéΦ
  444.             *----------------------
  445.             addq.w    #1,a2
  446.             bsr    HEXCUT
  447.             bcs    Switch_Error
  448.             move.l    d1,VSadr(a6)
  449.             rts
  450.  
  451.             *╠º▓┘Åπé╠ë╝æzëµû╩ÄwÆΦéáéΦ
  452.             *----------------------
  453. CheckParamVS05
  454.             bset.b    #5,Sys_flag2(a6)
  455.             lea.l    VSname(a6),a0
  456.             bsr    CutFname
  457.             tst.b    d1
  458.             beq    Switch_Error
  459.             clr.l    VSadr(a6)
  460.             rts
  461.  
  462.     *ëµæ£òΓÉ│
  463.     *-----------------------
  464. Option_J
  465.         bset.b    #5,Sys_flag(a6)
  466.         bset.b    #5,Sys_flag3(a6)
  467.         bsr    NUMCUT
  468.         bcs    Option_J_end
  469.         cmp.w    #3,d1
  470.         bhi    Switch_Error
  471.         *▒╜═▀╕─òΓÉ│
  472.         *----------------------
  473.         btst.l    #0,d1
  474.         bne    @f
  475.         bclr.b    #5,Sys_flag(a6)
  476. @@
  477.         *ÅIù╣Ä₧é╠ëµæ£Homeê╩ÆuòΓÉ│
  478.         *----------------------
  479.         btst.l    #1,d1
  480.         bne    @f
  481.         bclr.b    #5,Sys_flag3(a6)
  482. @@
  483. Option_J_end
  484.         rts
  485.  
  486.         *âpâXé╠ïµÉ╪éΦé╔ "/"é≡Ägéφé╚éó
  487.         *-----------------------------
  488. Option_P
  489.         bset.b    #4,Sys_flag3(a6)
  490.         rts
  491.  
  492.         *éQâpâXé┼ê│Åk
  493.         *-----------------------------
  494. Option_2
  495.         move.w    #2-1,EncodePath(a6)
  496.         rts
  497. *
  498. *  âtâ@âCâïû╝é╠âJâbâg
  499. *
  500. *  a2.l    Param Address
  501. *  a0.l    Fname
  502. *  d1.b:o  length(Fname)
  503. *
  504. CutFname
  505.     moveq    #0,d1
  506. cutf10
  507.     move.b    (a2)+,d0
  508.     beq    cutf20
  509.     cmpi.b    #' ',d0
  510.     bls    cutf20
  511.     move.b    d0,(a0)+
  512.     addq.b    #1,d1
  513.     bra    cutf10
  514. cutf20
  515.     subq.l    #1,a2
  516.     clr.b    (a0)
  517.     rts
  518. ***********************************************
  519. *
  520. *    ║╧▌─▐╫▓▌éµéΦê╩ÆuÄwÆΦô╟é▌ì₧é▌
  521. *
  522. *    ôⁿù═
  523. *        a2.l.....Param Address
  524. *    Åoù═
  525. *        ê╩ÆuÄwÆΦé╚é╡é╠ÅΩìç
  526. *            CY=1
  527. *        ê╩ÆuÄwÆΦùLéΦé╠ÅΩìç
  528. *            CY=0
  529. *            HS(a6)
  530. *            HE(a6)
  531. *            VS(a6)
  532. *            VE(a6)
  533. *    öjë≤    d0,d1
  534. ***********************************************
  535. RangeRead
  536.         bsr     NUMCUT
  537.         bcs     rangeread80        ê╩ÆuÄwÆΦé╚é╡
  538.  
  539.         bclr.b    #2,Sys_flag2(a6)    ê╩ÆuÄwÆΦùLéΦé╠ÅΩìçé═╜╕█░┘é╚é╡
  540.         bset.b    #3,Sys_flag2(a6)    ê╩ÆuÄwÆΦùLéΦâtâëâOÉ▌ÆΦ
  541.         cmp.b   #',',(a2)+
  542.         bne     Switch_Error
  543.         move.w  d1,HS(a6)
  544.         bsr     NUMCUT
  545.         bcs     Switch_Error
  546.         move.w  d1,VS(a6)
  547.         cmp.b   #',',(a2)
  548.         bne     rangeread80
  549.         addq.l    #1,a2
  550.  
  551.         bset.b    #6,Sys_flag2(a6)    ëEë║ê╩ÆuÄwÆΦùLéΦâtâëâOÉ▌ÆΦ
  552.         bsr     NUMCUT
  553.         bcs     Switch_Error
  554.         move.w  d1,HE(a6)
  555.         cmp.b   #',',(a2)+
  556.         bne     Switch_Error
  557.         bsr     NUMCUT
  558.         bcs     Switch_Error
  559.         move.w  d1,VE(a6)
  560. rangeread80
  561.         rts
  562. *
  563. *
  564. *  a2.l  Param Address
  565. *  d0.b  ÅIÆ[ò╢ÄÜ
  566. *  d1.w  ÉöÄÜ
  567. *
  568. *   âGâëü[Ä₧é═ébâtâëâOâZâbâg
  569. *
  570. NUMCUT
  571.     moveq.l    #0,d0
  572.     move.b    (a2)+,d0
  573.     beq    numcut90
  574.     bsr    chk_num
  575.     bcs    numcut90
  576.     moveq    #0,d1
  577.     move.b    d0,d1
  578. numcut10
  579.     move.b    (a2)+,d0
  580.     beq    numcut80
  581.     bsr    chk_num
  582.     bcs    numcut80
  583.     mulu    #10,d1
  584.     add.w    d0,d1
  585.     bra    numcut10
  586. numcut80
  587.     subq.l    #1,a2
  588. No_Carry_rts
  589.     move.w    #0,ccr
  590.     rts
  591.  
  592. numcut90
  593.     subq.l    #1,a2
  594. Carry_rts
  595.     move.w    #1,ccr
  596.     rts
  597. *
  598. *
  599. *  a2.l  Param Address
  600. *  d0.b  ÅIÆ[ò╢ÄÜ
  601. *  d1.w  ÉöÄÜ
  602. *
  603. *   âGâëü[Ä₧é═ébâtâëâOâZâbâg
  604. *
  605. HEXCUT
  606.   move.b  (a2)+,d0
  607.   beq     numcut90
  608.   bsr     chk_num
  609.   bcc     hexcut05
  610.   bsr     chk_hex
  611.   bcs     numcut90
  612.  
  613. hexcut05
  614.   moveq   #0,d1
  615.   move.b  d0,d1
  616. hexcut10
  617.     move.b  (a2)+,d0
  618.     bsr     chk_num
  619.     bcc     hexcut20
  620.     bsr     chk_hex
  621.     bcs     numcut80
  622. hexcut20
  623.       lsl.l   #4,d1
  624.       add.b   d0,d1
  625.       bra     hexcut10
  626.  
  627.  
  628. chk_num
  629.   cmp.b   #'0',d0
  630.   bcs     Carry_rts
  631.   cmp.b   #'9',d0
  632.   bhi     Carry_rts
  633.   sub.b   #'0',d0
  634.   bra     No_Carry_rts
  635.  
  636. chk_hex
  637.   cmp.b   #'A',d0
  638.   bcs     Carry_rts
  639.   cmp.b   #'F',d0
  640.   bls     chk_hex_upper
  641.   cmp.b   #'a',d0
  642.   bcs     Carry_rts
  643.   cmp.b   #'f',d0
  644.   bhi     Carry_rts
  645.   sub.b   #'a'-'A',d0
  646. chk_hex_upper
  647.   sub.b   #'A'-10,d0
  648.   bra     No_Carry_rts
  649.  
  650.  
  651. ******************************************************************************
  652. *
  653. *    ù╠êµâNâèâA
  654. *
  655. *    ôⁿù═    d5.l    âNâèâAé╖éΘâoâCâgÉö
  656. *        a5.l    âNâèâAé╖éΘâAâhâîâX
  657. *
  658. ******************************************************************************
  659. .xdef    clear_area
  660. clear_area
  661.     move.l    d5,-(sp)
  662.     lsr.l    #2,d5
  663.     bra    2f
  664. 1:
  665.     clr.l    (a5)+
  666. 2:
  667.     dbra    d5,1b
  668.     sub.l    #$10000,d5
  669.     bcc    1b
  670.  
  671.     moveq.l    #$03,d5
  672.     and.l    (sp)+,d5
  673.     bra    2f
  674. 1:
  675.     clr.b    (a5)+
  676. 2:
  677.     dbra    d5,1b
  678.     rts
  679. *
  680. *
  681. *
  682. *  d0=æSèp Carry off
  683. *
  684. SJIS 
  685.   cmpi.b #$80,d0
  686.   bcs    sjis9
  687.     cmpi.b  #$A0,d0
  688.     bcs       sjis5
  689.       cmpi.b  #$E0,d0
  690.       bra     sjis9
  691. sjis5 
  692.   eori #%0000_0001,ccr    * ccf
  693. sjis9 
  694.   rts
  695. *
  696. *
  697.  
  698. Option_tbl
  699.         .dc.w    'a',Option_A-CheckParam20
  700.         .dc.w    'b',Option_B-CheckParam20
  701.         .dc.w    'c',Option_C-CheckParam20
  702.         .dc.w    'f',Option_F-CheckParam20
  703.         .dc.w    'h',Option_H-CheckParam20
  704.         .dc.w    'i',Option_I-CheckParam20
  705.         .dc.w    'j',Option_J-CheckParam20
  706.         .dc.w    'k',Option_K-CheckParam20
  707.         .dc.w    'l',Option_L-CheckParam20
  708.         .dc.w    'm',Option_M-CheckParam20
  709.         .dc.w    'n',Option_N-CheckParam20
  710.         .dc.w    'p',Option_P-CheckParam20
  711.         .dc.w    'q',Option_Q-CheckParam20
  712.         .dc.w    's',Option_S-CheckParam20
  713.         .dc.w    'v',Option_V-CheckParam20
  714.         .dc.w    'w',Option_W-CheckParam20
  715.         .dc.w    '2',Option_2-CheckParam20
  716.         .dc.w    0
  717.  
  718.   .end    start
  719.